package com.tom.demo.common.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
* 角色信息表
* @TableName sys_role
*/
@Data
public class SysRole implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * 角色id
    */
    @NotNull(message="[角色id]不能为空")
    @ApiModelProperty("角色id")
    private String roleId;
    /**
    * 角色名称
    */
    @NotBlank(message="[角色名称]不能为空")
    @Size(max= 30,message="编码长度不能超过30")
    @ApiModelProperty("角色名称")
    @Length(max= 30,message="编码长度不能超过30")
    private String roleName;
    /**
    * 角色权限字符串
    */
    @NotBlank(message="[角色权限字符串]不能为空")
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("角色权限字符串")
    @Length(max= 50,message="编码长度不能超过50")
    private String roleKey;
    /**
    * 显示顺序
    */
    @NotNull(message="[显示顺序]不能为空")
    @ApiModelProperty("显示顺序")
    private Integer roleSort;
    /**
    * 角色状态（false正常 true停用）
    */
    @NotNull(message="[角色状态（false正常 true停用）]不能为空")
    @ApiModelProperty("角色状态（false正常 true停用）")
    private Boolean status;

    /**
    * 创建者
    */
    @Size(max= 64,message="编码长度不能超过64")
    @ApiModelProperty("创建者")
    @Length(max= 64,message="编码长度不能超过64")
    private String createBy;
    /**
    * 创建时间
    */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") //用于后端返回给前端的格式
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") //用于后端返接收前端的日期格式
    private Date createTime;
    /**
    * 更新者
    */
    @Size(max= 64,message="编码长度不能超过64")
    @ApiModelProperty("更新者")
    @Length(max= 64,message="编码长度不能超过64")
    private String updateBy;
    /**
    * 更新时间
    */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") //用于后端返回给前端的格式
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") //用于后端返接收前端的日期格式
    private Date updateTime;
    /**
    * 备注
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("备注")
    @Length(max= 500,message="编码长度不能超过500")
    private String remark;


}
